package com.ruoyi.oar.service;

import java.util.List;
import java.util.Optional;

import com.ruoyi.oar.domain.OarImpNetHouse;
import com.ruoyi.oar.domain.dto.OarImpNetHouseDTO;
import com.ruoyi.oar.controller.vo.OarImpNetHousePartField;
import com.ruoyi.oar.domain.query.OarImpNetHouseQuery;
import com.ruoyi.common.core.page.TableDataInfo;

/**
 * 导入的网约房Service接口
 * 
 * @author ruoyi
 * @date 2022-02-24
 */
public interface OarImpNetHouseService
{
    /**
     * 查询导入的网约房
     * 
     * @param id 导入的网约房主键
     * @return 导入的网约房
     */
    public Optional<OarImpNetHouseDTO> selectOarImpNetHouseById(String id);

    /**
     * 查询导入的网约房列表
     * 
     * @param oarImpNetHouseQuery 导入的网约房
     * @return 导入的网约房集合
     */
    public List<OarImpNetHouseDTO> selectOarImpNetHouseList(OarImpNetHouseQuery oarImpNetHouseQuery);

    public List<OarImpNetHouseDTO> selListByTaskId(String taskId);

    /**
     * 分页查询导入的网约房列表
     *
     * @param oarImpNetHouseQuery 导入的网约房
     * @return 导入的网约房集合
     */
    public TableDataInfo<OarImpNetHouseDTO> findAll(OarImpNetHouseQuery oarImpNetHouseQuery);

    /**
     * 新增导入的网约房
     * 
     * @param oarImpNetHouseDTO 导入的网约房
     * @return 结果
     */
    public int insertOarImpNetHouse(OarImpNetHouseDTO oarImpNetHouseDTO);

    /**
     * 修改导入的网约房
     * 
     * @param oarImpNetHouseDTO 导入的网约房
     * @return 结果
     */
    public int updateOarImpNetHouse(OarImpNetHouseDTO oarImpNetHouseDTO);

    /**
     * 批量删除导入的网约房
     * 
     * @param ids 需要删除的导入的网约房主键集合
     * @return 结果
     */
    public int deleteOarImpNetHouseByIds(String[] ids);

    /**
     * 删除导入的网约房信息
     * 
     * @param id 导入的网约房主键
     * @return 结果
     */
    public int deleteOarImpNetHouseById(String id);

    /**
     * 批量插入
     * @param userList
     * @param batchName
     * @return
     */
    public int batchImpNetHouse(List<OarImpNetHousePartField> userList, String batchName);

    /**
     * 批量更新是否下发状态
     * @param oarImpNetHouseDTO
     * @return
     */
    public int updateOarImpNetHouseByIds(OarImpNetHouseDTO oarImpNetHouseDTO);

    /**
     * 修改临时网约房为下发
     * @param oarImpNetHouseDTO
     * @return
     */
    public int updateisIssuedCheckByCreateBy(OarImpNetHouseDTO oarImpNetHouseDTO);

    /**
     * 根据批次号查询临时网约房列表
     * @param taskId
     * @return
     */
    public TableDataInfo<OarImpNetHouseDTO> selectOarImpNetHouseByTaskId(String taskId);

    /**
     * 导出部分字段Excel
     * @param oarImpNetHouseQuery
     * @return
     */
    public List<OarImpNetHousePartField> selectOarImpNetHousePartList(OarImpNetHouseQuery oarImpNetHouseQuery);

    /**
     * 批量更新
     * @param houseList
     */
    public void batchUpdate(List<OarImpNetHouseDTO> houseList);

    /**
     * 待核查网约房数量
     * @param createBy
     * @param isCheck
     * @return
     */
    public Integer countByIsCheck(String createBy,String isCheck);

    /**
     * 根据批次号查询临时网约房列表
     * @param taskId
     * @return
     */
    public List<OarImpNetHouseDTO> selectListByTaskId(String taskId);

}
